// 验证排序字段是否为正整数
let validatePass = (rule, value, callback) => {
    let regular = /^\+?[0-9]\d*$/;
    if (value && !regular.test(value)) {
        callback(new Error("排序字段需为正整数"));
    } else {
        callback();
    }
};

let validatePass4 = (rule, value, callback) => {
    let regular = /^\+?[0-9]\d*$/;
    if (value && !regular.test(value)) {
        callback(new Error("库存需为正整数"));
    } else {
        callback();
    }
};

let validatePass2 = (rule, value, callback) => {
  console.log('rule, value: ', rule, value);
  if (!value || value?.length === 0) {
      callback(new Error("请选择商品类别"));
  } else {
      callback();
  }
};

let validatePass3 = (rule, value, callback) => {
  console.log('rule, value: ', rule, value);
  let regex = /^(0|[1-9]\d*)(\.\d{1,2})?$/;
  if (!value) {
      callback(new Error("请输入 商品价格"));
  } else if(!regex.test(value)) {
      callback(new Error("请输入正确的价格格式，例如：99.99"));
  } else {
      callback();
  }
};

const Main_Option = {
    headerAlign: "center", // 表头布局
    align: "center", // 表格全局布局
    border: true, // 是否开启表格框
    menuWidth: 150, // 操作栏宽度
    editBtn: false,
    delBtn: false,
    editBtnIcon: " ", // 编辑按钮图标
    delBtnIcon: " ", // 删除按钮图标
    // dialogMenuPosition: 'center',
    // defaultExpandAll:true,
    index: true, // 开启表格序号
    column: [
        {
            label: "商品名称",
            prop: "title",
            overHidden: true, // 是否隐藏
            search: true, // 开启搜索
            rules: [
                {
                    required: true,
                    message: "请输入商品名称",
                    trigger: "blur",
                },
            ],
        },
        {
            label: "商品图",
            prop: "defaultImg",
            align: "center",
            slot: true, // 是否开启表格插槽
            // search: true, // 开启搜索
        },
        {
            label: "商品详情",
            prop: "decs",
            overHidden: true, // 是否隐藏
            span: 24,
            slot: true, // 是否开启表格插槽
        },
        {
            label: "价格/￥",
            prop: "price",
            rules: [
              {
                  required: true,
                  validator: validatePass3,
                  trigger: ["change", "blur"],
              },
          ],
        },
        {
            label: "商品类别",
            prop: "classesTitle",
            type: "cascader",
            checkStrictly: true,
            dicUrl: "/tube/admin/queryClassAll",
            props: {
              label: 'title',
              value: 'id'
            },
            formatter(params){
                return params?.classes?.map(item=>item.title)?.join(' | ')
            },
            rules: [
                {
                    required: true,
                    validator: validatePass2,
                    trigger: ["blur"],
                },
            ],
        },
        {
            label: "商品库存",
            prop: "inventory",
            rules: [
              {
                  required: true,//表示该字段必须被填写或选择
                  message: "请输入商品库存(正整数)",
                  validator: validatePass4,
                  trigger: ["change", "blur"],
              },
          ],
        },
        // {
        //   label: "商品分类",
        //   prop: "categoryId",
        //   type: "tree",
        //   dicUrl: "/api/blade-system/category/tree",
        //   props: {
        //     label: "title"
        //   },
        //   hide: true,
        //   search: true,
        //   rules: [{
        //     // required: true,
        //     message: "请输入商品分类",
        //     trigger: "click"
        //   }],
        // },
        {
            label: "商品排序",
            prop: "sort",
            rules: [
                {
                    validator: validatePass,
                    trigger: "blur",
                },
            ],
        },
        {
            label: "新建时间",
            prop: "createdAt",
            display: false,
        },
        {
            label: "最后更新时间",
            prop: "updatedAt",
            display: false,
        },
    ],
};

const Main_Data = [];

export { Main_Option, Main_Data };
